﻿using WYD.Model.AI.OpenAIApi;

namespace WYD.Service.AI.IService;

public interface IRagService
{
    /// <summary>
    /// 预处理 Markdown 文档并将其加载到向量存储中。
    /// </summary>
    /// <param name="ragDirectory">包含 Markdown 文件的目录路径</param>
    /// <returns></returns>
    Task InitializeAsync(string ragDirectory);

    /// <summary>
    /// 使用 RAG 检索并生成聊天回复（流式）。
    /// </summary>
    /// <param name="messages"></param>
    /// <returns>AI 的回答</returns>
    IAsyncEnumerable<string> GetChatResponseStreamAsync(List<Message> messages);

    /// <summary>
    /// 使用 RAG 检索并生成聊天回复。
    /// </summary>
    /// <param name="messages"></param>
    /// <returns>AI 的回答</returns>
    Task<string> GetChatResponseAsync(List<Message> messages);
}